package com.task.core.mapper;

import java.util.List;

import com.task.core.vo.resp.FlowFilterDetailRespVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import com.task.common.domain.info.KeyAndValue;
import com.task.common.info.FlowFilterInfo;
import com.task.core.dto.request.FlowFilterRequestDTO;

/**
 * @author 迪迦.
 * @date 2024/11/4 17:31
 */
@Mapper
public interface FlowFilterMapper {

  List<FlowFilterInfo> getFlowFilterByPage(FlowFilterRequestDTO request);

  FlowFilterInfo getFlowFilterByCode(FlowFilterRequestDTO request);

  List<KeyAndValue> getFlowFilterForOption(FlowFilterRequestDTO request);

  void addFlowFilter(@Param("request") FlowFilterRequestDTO request, @Param("pattern") byte[] pattern);

  Integer modifyFlowFilter(@Param("request") FlowFilterRequestDTO request, @Param("pattern") byte[] pattern);

  Integer deleteFlowFilter(@Param("code") String refererSourceCode, @Param("userId") Long userId);

  void deleteMissionFlowFilterRelation(String flowFilterCode);

  List<FlowFilterInfo> getFlowFilterByPageInMissionDetail(FlowFilterRequestDTO request);

    FlowFilterDetailRespVo getFlowFilterDetail(FlowFilterRequestDTO flowFilterRequestDTO);
}
